﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Caixa.Model.Interface;
using Caixa.Model.Enum;

namespace Caixa.Model
{
	[Serializable]
	public abstract class Pessoa : IPessoa
	{
		#region " Fields "

		/// <summary>    
		/// Define a relação entre as propriedades do objeto 
		/// com o campo no banco de dados.
		/// OBS.: O Nome da constante deve ser o mesmo da propriedade.
		/// </summary>
		public static class Fields
		{
			public const string TABELA = "Pessoa";

			public const string ID = "CodPessoa";
			public const string TIPOPESSOA = "CodTipoPessoa";
			public const string NOME = "Nome";
			public const string ENDERECO = "Endereco";
			public const string NUMERO = "Numero";
			public const string BAIRRO = "Bairro";
			public const string CIDADE = "Cidade";
			public const string ESTADO = "Estado";
			public const string TELEFONE = "Telefone";
		}

		#endregion

		#region " Variables "

		protected TipoPessoaEnum _tipoPessoa;

		#endregion

		#region " Properts "

		public virtual int ID { get; set; }
		public TipoPessoaEnum TipoPessoa { get { return _tipoPessoa; } }
		public string Nome { get; set; }
		public string Endereco { get; set; }
		public int Numero { get; set; }
		public string Bairro { get; set; }
		public string Cidade { get; set; }
		public string Estado { get; set; }
		public string Telefone { get; set; }

		#endregion
	}
}
